1. Field of the Invention
The invention relates generally to storage systems using redundant array of independent drives (“RAID”) storage management techniques and more particularly relates to improvements for re-synchronization of RAID level 1 mirrored storage devices.
2. Discussion of Related Art
In storage systems it is well known to apply RAID management techniques to enhance reliability, performance, or both. The RAID standards provide for a number of different management levels each providing a different balance of reliability enhancements and performance impacts. For example, RAID level 1 defines simple mirroring of data. Each disk drive (or portion of a disk drive) is associated with a corresponding mirror disk drive (or mirrored portion of another disk drive) on which a duplicate copy of written data is retained. Thus, in accordance with RAID level 1 mirroring, each host I/O write request records the host-supplied data both on the primary disk drive of the identified RAID level 1 volume of the storage device as well as on a mirror disk drive associated with the primary disk drive. As is also well known in the art, such RAID level 1 mirroring may record any number of duplicate copies for still further redundancy to prevent against failure. RAID level 1 mirroring as compared to other RAID levels provides its redundancy, and hence reliability enhancement, by maintaining a complete duplicate copy of the host-supplied data.
Under certain conditions as are well known in the art, it may become necessary to reconstruct or re-synchronize the information stored on the mirrored disk drive. In general such reconstruction or re-synchronization is performed by reading information from the primary disk drive and writing the retrieved information back to the mirrored disk drive. Such re-synchronization may entail reading and writing all of the data from the primary drive back onto the mirrored disk drive or may entail selective copying by determining which data needs to be read and re-recorded on the mirrored disk drive. In either case, this re-synchronization process can be extremely time consuming.
In such a RAID storage system, one or more RAID controllers are coupled to a plurality of disk drives to provide the desired RAID level of management. Each RAID controller typically provides a substantial cache memory for storing host supplied data until such time as it can be most efficiently written to the primary and mirrored disk drive. This use of storage controller cache memory is key to the performance of RAID storage systems. It is also generally known in the art that, in addition to cache memory residing on the RAID storage controller, each disk drive may include substantial cache memory useful for improving write performance for that disk drive. In other words, each individual disk drive controller may receive data for a write request directed to it from the RAID storage controller and may complete the write by simply storing the supplied data in its local cache memory until a more convenient time for posting or flushing the data from cache to the persistent storage medium of the disk drive (e.g., the magnetic or optical recordable medium within the disk drive).
To reduce the time required for such re-synchronization it could be desirable to utilize the local cache memory on the mirrored disk drive to improve the write performance when performing a re-synchronization operation. However, due to the reliability requirements associated with RAID storage management, local cache memory associated with an individual disk drive in a RAID storage subsystem is typically unused or disabled. Rather, RAID storage management techniques tend to rely on the cache memory associated with the RAID storage controller to improve performance. This cache memory associated with the storage controller (as distinct from the local cache memory in each disk drive) may be nonvolatile to improve reliability and may also be duplicated in a redundant cache memory of a redundant storage controller. The cache memory of the storage controller is therefore more reliable and may recovery from fault conditions. Thus, RAID storage management techniques tend to disable use of any local cache memory associated with each individual disk drive of the storage system and rely solely on the cache memory of the storage controller.
As presently practiced, especially in view of the disabling of local cache memory on disk drive as of a RAID storage subsystem, re-synchronization of a RAID level 1 volume to synchronize data on a mirrored disk drive from the contents of the primary disk drive remains a time consuming operation.
It is evident from the above discussion that a need exists for an improved structure and method for improving performance of RAID level 1 re-synchronization between the contents of a primary disk drive and that of its associated who mirrored disk drive.